package com.lhy.framework.beans.factory.factory;

import com.lhy.framework.beans.BeansException;
import com.lhy.framework.beans.PropertyValues;

/**
 * @Title:
 * @Description: 功能概述:
 * @Author: lihaiyang
 * @version: 1.0 .
 * @Date: 2022-09-13 17:52
 * @Copyright: Copyright(c)2022 RedaFlight.comAll Rights Reserved
 */
public interface InstantiationAwareBeanPostProcessor extends BeanPostProcessor {

    /**
     * 在 Bean 对象初始化方法之前，执行此方法
     *
     * @param beanName
     * @param beanClass
     * @return
     * @throws BeansException
     */
    Object postProcessBeforeInstantiation(String beanName, Class<?> beanClass) throws BeansException;

    PropertyValues postProcessPropertyValues(PropertyValues propertyValues, String beanName, Object bean);

}
